package Collection;

import java.util.*;

public class SortString {
    public static void main(String[] args) {
        Random ran=new Random();
        List<Integer> list =new ArrayList<>();

        for (int i=0; i<10;i++){
            list.add(ran.nextInt(100));

        }
        System.out.println("list排序前"+list);

        Collections.sort(list);//自然排序，从小到大
        System.out.println("list排序后"+list);

        Collections.reverse(list);//反转list
       System.out.println("反转List"+list);
        System.out.println("第一个元素为："+list.get(0));
        //对英文字符串排序，会按照首字母的ASCII码排
        //对首字母相同  比较第二个字母的ASCII码 ，，，
        List<String> list1=new ArrayList<>();
        list1.add("jack");
        list1.add("rose");
        list1.add("tom");
        list1.add("jerry");
        list1.add("block");
        list1.add("Kobe");
        System.out.println("list1原数据"+list1);

        Collections.sort(list1);
        System.out.println("list1排序后"+list1);
        Collections.reverse(list1);
        System.out.println("反转List1"+list1);

        List<String> list2=new ArrayList<>();
        list2.add("王克晶");
        list2.add("凤凰传奇");
        list2.add("房东的猫");
        list2.add("小粒");
        System.out.println("list2原数据"+list2);
//        Collections.sort(list2);
//        System.out.println("list2排序后"+list2);
//        Collections.reverse(list2);
//      System.out.println("反转List1"+list2);

        Collections.sort(list2, new Comparator<String>() {
            /*
            compare() 方法用于定义01 02比较大小的规则  并且返回值表达大小关系
            1 如果返回值>0表达o1>o2
            如果返回值<》>0表达o1<o2
            如果返回值=0表达o1=o2
             */
            @Override
            public int compare(String o1, String o2) {
                return o1.length()-o2.length();//前面-后面升序
                //return 02.length（）-o1.length（）;后面-前面 降序
            }
        });
        System.out.println("list2排序后"+list2);
    }
}
